package demo01_basicGrammer

object Demo04_control_loop {

  def main(args: Array[String]): Unit = {
    /**
     * 1.for循环
     * 元组类型不是可迭代对象，不能直接循环
     */
    val numTuple = (1,2,3,4,5)
    //可以使用 to until 或 Range 直接生成可迭代对象
//    for(i <- 1 to  10) println(i)
//    for(i <- 1 to  10 reverse) println(i)
//    for(i <- 1 until  11) println(i)
//    for(i <- 1 until  11 reverse) println(i)
//    for(i <- Range(1,11)) println(i)
//    for(i <- Range(1,11,2)) println(i)
//    for(i <- Range(10,0,-1)) println(i)

    //1.1 如果在for后面加yield关键字，且循环内有返回值，接收到的内容就是返回值的集合
//    val result = for(i <- 1 to  10) yield {
//      i*i
//    }
//    println(result)

    //1.2 嵌套循环
//    for(i <- 1 to 3;j <- 2 to 4;z <- 3 to 5){
//        println(s"${i}:${j}:${z}")
//    }

    //1.3.1
//    val fruits = "apple,banana,pear,,watermelon,peach"
//    for(fruit <- fruits.split(",")){
//      if(fruit !=null && !fruit.equals("")){
//        println(fruit)
//      }
//    }

    //1.3.2
//    val fruits = "apple,banana,pear,,watermelon,peach"
//    for(fruit <- fruits.split(",") if fruit!=null && !fruit.equals("")){
//      println(fruit)
//    }

    //1.3.3
//    val fruits = "apple,banana,pear,,watermelon,peach"
//    for(fruit <- fruits.split(",") if fruit!=null if !fruit.equals("")){
//      println(fruit)
//    }

    //1.3.4
//    val fruits = "apple,banana,pear,,watermelon,peach"
//    for(
//      fruit <- fruits.split(",")
//      if fruit!=null
//      if !fruit.equals("")
//    ){
//      println(fruit)
//    }

    //1.3.5
    val fruits = "apple,banana,pear,,watermelon,peach"
    for {
      fruit <- fruits.split(",")
      if fruit != null
      if !fruit.equals("")
    }{
      println(fruit)
    }

    /**
     * 2.while   do...while...
     */
    var num = 1
    while(num<=10){
      println(num)
      num+=1;
    }
    println(num)
    do{
      println(num)
      num+=1
    }while(num<=10)


  }
}
